/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package conn.dao;

import conn.bean.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author kuma-chin
 */
public class DProvincia extends DBase {

    public BProvincia getProvincia(int id) {
        BProvincia provincia = null;
        DDepartamento depar = new DDepartamento();


        Statement stmt = null;
        ResultSet res = null;

        this.init_mysql();  // se inicia la conección a la base de datos

        try {

            stmt = conn.createStatement();
            res = stmt.executeQuery(
                    "SELECT idProvincia, descripcion, idDepartamento"
                    + " FROM Provincia"
                    + " WHERE idProvincia=" + id
                    + "");
            BDepartamento departamento = depar.getDepartamento(res.getInt(3));
            provincia = new BProvincia(res.getInt(1), res.getString(2), departamento);

            res.close();
            stmt.close();
            conn.close();

        } catch (SQLException ex) {
            System.out.println("SqlException : " + ex.toString());
        } catch (Exception ex) {
            System.out.println("Exception : " + ex.toString());
        } finally {
            if (res != null) {
                try {
                    res.close();
                } catch (SQLException e) {
                    ;
                }
                res = null;
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    ;
                }
                stmt = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    ;
                }
                conn = null;
            }
        }


        return provincia;
    }

    public List getmodprovincia() {
        List Lista = new ArrayList();
        Statement stmt = null;
        ResultSet res = null;
        BDepartamento bdepartamento = null;

        BProvincia bprovincia = null;

        this.init_mysql();  // se inicia la conección a la base de datos

        try {
            stmt = conn.createStatement();
            res = stmt.executeQuery(
                    "select p.idProvincia, p.descripcion, d.idDepartamento, d.descripcion from departamento d, provincia p " +
                    "where p.idDepartamento = d.idDepartamento");

            while (res.next()) {
                bdepartamento = new BDepartamento(res.getInt(3), res.getString(4));
                bprovincia = new BProvincia(res.getInt(1),res.getString(2),bdepartamento);
                Lista.add(bprovincia);
            }
            res.close();
            stmt.close();
            conn.close();
        } catch (SQLException ex) {
            System.out.println("SqlException : " + ex.toString());
        } catch (Exception ex) {
            System.out.println("Exception : " + ex.toString());
        } finally {
            if (res != null) {
                try {
                    res.close();
                } catch (SQLException e) {
                    ;
                }
                res = null;
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    ;
                }
                stmt = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    ;
                }
                conn = null;
            }
        }
        return Lista;
    }

    public List refreshmodprovincia(String id) {
        List Lista = new ArrayList();
        Statement stmt = null;
        ResultSet res = null;
        BDepartamento bdepartamento = null;

        BProvincia bprovincia = null;

        this.init_mysql();  // se inicia la conección a la base de datos

        try {
            stmt = conn.createStatement();

            String query1 = "select p.idProvincia, p.descripcion, d.idDepartamento, d.descripcion from departamento d, provincia p " +
                            "where p.idDepartamento = d.idDepartamento";
            String query2 = "Select idProvincia, descripcion, idDepartamento from provincia where idDepartamento = '" + id + "';";
            String query = null;

            if (id == null) {query = query1;}
            else {query = query2;}

            res = stmt.executeQuery(query);

            while (res.next()) {
                bdepartamento = new BDepartamento(res.getInt(3), null);
                bprovincia = new BProvincia(res.getInt(1),res.getString(2),bdepartamento);
                Lista.add(bprovincia);
            }
            res.close();
            stmt.close();
            conn.close();
        } catch (SQLException ex) {
            System.out.println("SqlException : " + ex.toString());
        } catch (Exception ex) {
            System.out.println("Exception : " + ex.toString());
        } finally {
            if (res != null) {
                try {
                    res.close();
                } catch (SQLException e) {
                    ;
                }
                res = null;
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    ;
                }
                stmt = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    ;
                }
                conn = null;
            }
        }
        return Lista;
    }

    public String getStrProv(int prov) {
        Statement stmt = null;
        ResultSet res = null;

        this.init_mysql();  // se inicia la conección a la base de datos
        String provi = null;
        try {

            stmt = conn.createStatement();
            res = stmt.executeQuery("select descripcion from provincia where idProvincia = '" + prov + "';");

            if (res.next()) {

                provi = res.getString(1);
            }

            res.close();
            stmt.close();
            conn.close();

        } catch (SQLException ex) {
            System.out.println("SqlException : " + ex.toString());
        } catch (Exception ex) {
            System.out.println("Exception : " + ex.toString());
        } finally {
            if (res != null) {
                try {
                    res.close();
                } catch (SQLException e) {
                    ;
                }
                res = null;
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    ;
                }
                stmt = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    ;
                }
                conn = null;
            }
        }
        return provi;
    }
}
